Enterprise software systems are typically sophisticated, large-scale systems that support many, e.g., hundreds or thousands, of concurrent users. Examples of enterprise software systems include financial planning systems, budget planning systems, order management systems, inventory management systems, sales force management systems, business intelligent tools, enterprise reporting tools, project and resource management systems and other enterprise software systems.
In a typical computing environment, remove client devices often retrieve enterprise data from the enterprise software system. However, the enterprise software system often stores the enterprise data as multidimensional data comprising complicated object definitions and data types that cannot easily be transmitted to the user device via most communication protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP). Therefore, the enterprise planning system may serialize the multidimensional data into a data description language, such as the extensible markup language (XML), which expresses the enterprise planning data as plain text for transmission.
Upon receiving the serialized transmission, the client device de-serializes the XML stream into objects or, in the case of multi-dimensional data, a hierarchy of objects. The representation of multi-dimensional data as objects can include tens of thousands of object instantiations. Some programming languages, although optimized for object-oriented programming, begin to slow down during the creation and especially the deletion of many small objects. In an attempt to prevent the slow down, the XML representation of the data may be broken into multiple XML calls. The user device may then retrieve subsets of the XML from the enterprise software system as needed. For example, the client device may initially on retrieve the highest levels of the object hierarchy, and retrieve subsequent levels when requested by the software executing on the client device. In this way, the client device does not retrieve data from the enterprise system that is never actually needed by the client device. This process of retrieving data from the enterprise system as needed is often referred to as “load on demand.”